home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Magnum One
/
Magnum One (Mid-American Digital) (Disc Manufacturing).iso
/
d6
/
glazer.arc
/
CHARGEHI.BAS
< prev
next >
Wrap
BASIC Source File
|
1988-10-07
|
2KB
|
62 lines
100 'Charge History ("CHARGEHIST")
110 CLS
120 COLOR 0,15 : PRINT "Charge Account History" : COLOR 15,0
130 DEFDBL A-Z
140 MONEYFMT$ = "$$##,###,###.##"
150 'Define rounding function
160 DEF FNR (V) = SGN (V) * INT (ABS (V) * 100 + .5) / 100
170 ' Let user enter data
180 PRINT : PRINT
190 PRINT "Do not enter dollar signs or commas"
200 PRINT
210 INPUT "Credit limit: ", CREDITLIMIT
220 INPUT "Initial balance: ", BALANCE
230 INPUT "Monthly purchases: ", PURCHASES
240 INPUT "Annual interest charge (in percent): ", CR
250 INPUT "Monthly payment (as percentage of balance): ", RPMT
260 INPUT "Minimum monthly payment: ", MINPMT
270 PRINT "Enter date of first payment"
280 INPUT " Month (1-12): ", MONTH
290 INPUT " Year: ", YEAR
300 ' Initialize variables
310 TOTALPURCHASES = 0
320 TOTALPAYMENTS = 0
330 TOTALINTEREST = 0
340 CREDITAVAIL = CREDITLIMIT - BALANCE
360 M = 0
370 MONTHNUM = YEAR * 12 + MONTH
380 PRINT
390 PRINT "Press space bar to continue"
400 ' Compute monthly balances
410 WHILE CREDITAVAIL > 0
420 K$ = INKEY$ : IF K$ = "" THEN GOTO 420
430 M = M + 1
440 YEAR = (MONTHNUM - 1) \ 12
450 MONTH = MONTHNUM - YEAR * 12
460 MONTHNUM = MONTHNUM + 1
470 ' Calculate month's payments
480 BALANCE = BALANCE + PURCHASES
490 INTERESTDUE = FNR (BALANCE * CR / 1200)
500 PMT = INT (BALANCE * RPMT + .5) / 100
510 IF PMT < MINPMT THEN PMT = MINPMT
520 IF PMT > BALANCE + INTERESTDUE THEN PMT = BALANCE + INTERESTDUE
530 BALANCE = FNR (BALANCE - PMT + INTERESTDUE)
540 ' Compute cumulative totals
550 TOTALPURCHASES = TOTALPURCHASES + PURCHASES
560 TOTALPAYMENTS = TOTALPAYMENTS + PMT
570 TOTALINTEREST = TOTALINTEREST + INTERESTDUE
580 CREDITAVAIL = CREDITLIMIT - BALANCE
590 ' Print results
600 PRINT : PRINT
610 PRINT "Payment number: "; M
620 PRINT "Date: "; MONTH; "/"; YEAR
630 PRINT "Credit available: "; TAB(30); USING MONEYFMT$; CREDITAVAIL
640 PRINT "New balance: "; TAB(30); USING MONEYFMT$; BALANCE
650 PRINT "Total purchases: "; TAB(30); USING MONEYFMT$; TOTALPURCHASES
660 PRINT "Payment: "; TAB(30); USING MONEYFMT$; PMT
670 PRINT "Finance charge: "; TAB(30); USING MONEYFMT$; INTERESTDUE
680 PRINT "Cumulative payments: "; TAB(30); USING MONEYFMT$; TOTALPAYMENTS
690 PRINT "Cumulative finance charges: "; TAB(30); USING MONEYFMT$; TOTALINTEREST
700 WEND
710 END